package cn.iocoder.yudao.module.diy.controller.admin.diy.vo.other;

import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONObject;
import cn.iocoder.yudao.module.diy.enums.SceneDomainVo;
import cn.iocoder.yudao.module.diy.enums.TemplateEnum;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * DiyPageVo
 */
@Data
@Schema(description = "管理后台 - ns装修页面 Response VO")
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class NsDiyPageRespVo{

    private static final long serialVersionUID = 1L;

    private Long id;  //
    private String pageTitle;  // 页面名称（用于后台展示）
    private String title;  // 页面标题（用于前台展示）
    private String name;  // 页面标识
    private String type;  // 页面模板
    private String template;  // 模板名称
    private String mode;  // 页面展示模式，diy：自定义，fixed：固定
    private String value;  // 页面数据，json格式
    private Integer isDefault;  // 是否默认页面，1：是，0：否
    private Integer isChange;  // 数据是否发生过变化，1：变化了，2：没有
    private String share;  // 分享内容
    private Integer visitCount;  // 访问量
    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long createTime; // 创建时间
    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long updateTime; // 更新时间
    private String typeName;
    private String addonName;
    private String typePage;
    private String page;
    private JSONObject component;
    private SceneDomainVo domainUrl;

    /**
     * 插件标识key
     */
    private String addonKey;

//    public String getTypeName() {
//        JSONObject template = TemplateEnum.getTemplate();
//        return ObjectUtil.defaultIfNull(template.getByPath(this.type + ".title", String.class), "");
//    }
}
